iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Modern Web

Laravel 那麼好用還需要自幹框架嗎系列 第 5

Day 05:引用 Symfony 並更新框架核心

  • 分享至 

  • xImage
  •  

昨天看了 Laravel 怎麼使用 Symfony 的 Request 物件來建立自己的 Request,今天我們來試看看怎麼依樣畫葫蘆,在我們自己的套件上加上一個 Request 物件。

我們先在框架專案內,包含了 symfony/http-foundation 這個套件。所以我們專案內的 composer.json 變成了

{
    "name": "recca/reccaval-framework",
    "description": "a test project for mimicking laravel/framework",
    "type": "library",
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Reccaval\\": "src/"
        }
    },
    "authors": [
        {
            "name": "Recca Chao",
            "email": "flamerecca711@gmail.com"
        }
    ],
    "require": {
        "symfony/http-foundation": "^7.0"
    }
}

接著建立一個 src/Foundation/Request.php 內容如下

<?php

namespace Reccaval\Foundation;

use Symfony\Component\HttpFoundation\Request as SymfonyRequest;

class Request extends SymfonyRequest
{
    public function capture()
    {
        return SymfonyRequest::createFromGlobals();
    }
}

這邊的邏輯只有直接使用 Symfony Request,沒有增加複雜的內容

接著,我們推到專案的 repo 內,並加上標籤 0.0.2

https://github.com/flamerecca/reccaval-framework/releases/tag/0.0.2

加上標籤之後,我們到 packagist 看一下

https://packagist.org/packages/recca/reccaval-framework

可以看到多了一個標籤。

接著,我們到範例專案裡面,調整一下相依的版本號

    "require": {
        "recca/reccaval-framework": "^0.0"
    }

接著我們執行 composer update,順利的話就可以看到以下訊息

Upgrading recca/reccaval-framework (0.0.1 => 0.0.2)

看到這個訊息,代表我們成功的更新了套件

我們試看看能不能成功的使用套件的內容。我們將 hello.php 改成

<?php

use Reccaval\Foundation\Request;

// Register the Composer autoloader...
require __DIR__.'/../vendor/autoload.php';

echo (new Request)->capture()->getBaseUrl();

順利的話,我們就會在畫面看到 /hello.php 這個路徑

到這邊,我們引用 Symfony 與更新套件的部分就測試完成囉!


上一篇
Day 04:捕捉使用者請求
下一篇
Day 06:Laravel 如何引入路由檔案
系列文
Laravel 那麼好用還需要自幹框架嗎18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言